Software development is often a collaborative task of multiple developers. Collaboration in software development is not limited to dividing tasks among developers, but may also include sharing of ideas, discussing and consulting subject matters, and the like. Compared with a user who is working alone, some advantages of collaborative development include: 1) utilizing team knowledge and expertise, 2) easier and earlier detection of problems, 3) keeping up with the global insight of the project, 4) solving problems faster, 5) better design and more robust code, etc.
Social networks provide a communication and collaboration platform that mimics people's natural social environment. In such an environment, people may work together in the same structure and the social networks may be an ideal collaboration platform for software development as well.
In most applications with regard to integrated-collaborations of today, collaboration features are simple add-ons to the single-user features. In other words, the collaboration is divided into two parts i.e., 1) a single-user part that supports conventional single-user features, and 2) the collaborative part that allows the user to communicate with others. In this method, a single-user is not enhanced by the collaboration feature, which may create difficulties for users to communicate in such environment.